﻿using EGuayas.Web.Auditoria.promotor;
using EGuayas.Web.Resources;
using EntGuayasSLA.BL;
using Ext.Net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace EGuayas.Web.Auditoria.admin.Global
{
    public partial class PgPromoOtros : pgBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
            if (!X.IsAjaxRequest)
            {
                var ExpedienteId = Request["exp_id"];
                Session[SessionPage.PageGestionAdminAud + Constantes.Expediente] = ExpedienteId;

                if (Request["evt"] == Valores.PageEvento_Modificar)
                {
                    Obligaciones objObligacion = Obligaciones.GetEditableRoot(Guid.Parse(Request["idOli"]));
                    AuditoriaOtros audOtros = AuditoriaOtros.GetEditableRoot(Guid.Parse(objObligacion.AuditoriaId));
                    SetFase();
                    wucLoadDoc obj = (wucLoadDoc)this.wuc_load_AO007.UserControls[0];
                    obj.EnabledBtnNuevoDocumento(audOtros.Id.ToString(),true,false);                 
                   
                    frmAuditoria.SetValues(new
                    {
                        FechaInicio = audOtros.FechaInicio.ToShortDateString(),
                        FechaFin = audOtros.FechaFin.ToShortDateString()
                    });
                    btnSave.Hide();
                    //     
                    X.Js.Call("pgFn.setReadOnly");
                }
                else
                {
                    //Asociar Id a Fase de la session para subir documentos, inicialmente blanca
                    Session[SessionPage.PageGestionAdminAud + Constantes.AOtros] = "";
                }
                    
            }//if (!X.IsAj
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        protected void btnSave_Click(object sender, DirectEventArgs e)
        {
            try
            {
                    string stringMsg = "Auditoria Otros creada";
                    string gridJson = e.ExtraParams["prmValues"];
                    var dataItem = JSON.Deserialize<Dictionary<string, string>>(gridJson);
                    var AuditoriaIdTmp = Request["idAud"];

                    //Crear otros
                    AuditoriaOtros audOtros = AuditoriaOtros.NewEditableRoot();
                    audOtros.Id = System.Guid.NewGuid();
                    audOtros.ExpedienteAuditoriaId = Request["exp_id"];
                    audOtros.FechaInicio = DateTime.Parse(dataItem["FechaInicio"]);
                    audOtros.FechaFin = DateTime.Parse(dataItem["FechaFin"]);
                    audOtros.PlanAccion = Valores.Codigo_CHAR_No;
                    audOtros.Save();

                    SetFase();
                    
                    //Actualizar id auditoria
                    Obligaciones objObligacion = Obligaciones.GetEditableRoot(Guid.Parse(Request["idOli"]));
                    objObligacion.AuditoriaId = audOtros.Id.ToString();
                    objObligacion.Tipo = Valores.Codigo_TipoObligacion_Otros;
                    objObligacion.Save();
                    btnSave.Disable();
                   
                    //Habilitar Boton Nuevo
                    wucLoadDoc obj = (wucLoadDoc)this.wuc_load_AO007.UserControls[0];
                    obj.EnabledBtnNuevoDocumento(audOtros.Id.ToString(),false,true);
                    X.Msg.Show(new MessageBoxConfig
                    {
                        Buttons = MessageBox.Button.OK,
                        Icon = MessageBox.Icon.INFO,
                        Title = Titulos.TituloAviso,
                        Message = string.Format("{0}", stringMsg),
                        Handler = " if (window.parent!=null && typeof window.parent.App.CloseDetallaNuevaAuditoria === 'function') window.parent.App.CloseDetallaNuevaAuditoria();"

                     });
                    
                
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }

        private void SetFase()
        {
            try
            {
            Fase objFase = Fase.GetEditableRoot(Constantes.AOtros);
            //Asociar Id a Fase de la session para subir documentos
            Session[SessionPage.PageGestionAdminAud + Constantes.AOtros] = objFase.Id.ToString();
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        protected void OnLoadDocOtrosAdded(object sender, ComponentAddedEventArgs e)
        {
            try
            {
            Ext.Net.Panel panel = (Ext.Net.Panel)e.Control;
                //TODO: Revisar esta asignacion
            SetCustomConfigWucAud(panel, Constantes.AOtros, Valores.Modulo_Archivo_Aud_Otros, SessionPage.PageGestionAdminAud);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }

        }
    }
}